package me.helllp.book.netty.step00;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Date;

public class TimeServerHandler implements Runnable{

	private Socket socket;
	
	public TimeServerHandler(Socket socket) {
		this.socket = socket;
	}
	
	@Override
	public void run() {
		BufferedReader in = null;
		PrintWriter out = null;
		
		try {
			in = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
			out = new PrintWriter(this.socket.getOutputStream());
			
			String currentTime = null;
			String body = null;
			
			while(true){
				body = in.readLine();
				if(body == null){
					break;
				}
				
				System.out.println("收到的信息：" + body);
				
				currentTime = "TIME".equalsIgnoreCase(body) ? new Date(System.currentTimeMillis()).toString() : "未响应的命令";
				out.println(currentTime);
				out.flush();
			}
		} catch (IOException e) {
			if(in != null){
				try {
					in.close();
			
				} catch (Exception e2) {
				}
			}
			in = null;
			
			if(out != null){
				try {
					out.close();
					
				} catch (Exception e2) {
				}
			}
			out = null;
			
			if(this.socket != null){
				try {
					this.socket.close();
				} catch (Exception e2) {
					// TODO: handle exception
				}
			}
			this.socket = null;
		} finally {
			// TODO: handle finally clause
		}
		System.out.println(new Date());
	}

}
